#pragma once

#include "../utils/object.h"
#include <unordered_map>

namespace fusion_perception {

class Tracker;
class TrackerManager {
public:
    TrackerManager(void) = default;

    std::shared_ptr<Tracker> getTrackerById(int64_t id);
    ObjectSptrVector getFusedObjects(void);
    void fuse(int64_t, const MultiAssociatedObject&);

private:
    int64_t id_ { 0 };
    std::unordered_map<int64_t, std::shared_ptr<Tracker>> trackersUMap_;
};
}